package guiasaude.reps;

import excecoes.ObjetoInexistenteException;
import excecoes.ObjetoJaExistenteException;
import excecoes.RepositorioException;
import guiasaude.UnidadeSaude;
import util.IRepositorioRegistro;
import util.Registro;
import util.RepositorioRegistro;

public class RepositorioUnidadeSaudeLista implements IRepositorioUnidadeSaude {

	/* Delegation */
	private IRepositorioRegistro repRegistro;	
	
	/* Singleton */
	private static RepositorioUnidadeSaudeLista instance = null;
	
	private RepositorioUnidadeSaudeLista() {
		// inicializando o atributo delegation
		this.repRegistro = new RepositorioRegistro();		
	}
	public static RepositorioUnidadeSaudeLista getInstance() {
		if (instance == null) {
			instance = new RepositorioUnidadeSaudeLista();
		}
		return instance;
	}		
	
	public void atualiza(UnidadeSaude us) throws RepositorioException, ObjetoInexistenteException {
		this.repRegistro.atualiza(us);		
	}

	public void deleta(int codigo) throws RepositorioException, ObjetoInexistenteException {
		this.repRegistro.deleta(codigo);
	}

	public boolean existe(int codigo) throws RepositorioException {
		boolean retorno = this.repRegistro.existe(codigo);
		return retorno;
	}

	public void insere(UnidadeSaude us) throws RepositorioException, ObjetoJaExistenteException {
		this.repRegistro.insere(us);
		
	}

	public UnidadeSaude procura(int codigo) throws RepositorioException, ObjetoInexistenteException {
		Registro r = this.repRegistro.procura(codigo);
		return (UnidadeSaude)r;
	}

	public int size() {
		return this.repRegistro.size();
	}
	
	public UnidadeSaude getElemento(int posicao) {
		return (UnidadeSaude) this.repRegistro.getElemento(posicao);
	}
	
	public IRepositorioUnidadeSaude getListaUnidadeSaude() throws RepositorioException, ObjetoInexistenteException {
		// TODO Auto-generated method stub
		return null;
	}
	public IRepositorioUnidadeSaude getListaUnidadeSaudeporEspecialidade(int codEspecialidade) throws RepositorioException, ObjetoInexistenteException {
		// TODO Auto-generated method stub
		return null;
	}

}
